package com.UnionPayCenter.account.service;

import com.UnionPayCenter.account.entity.ChargeBill;
import com.UnionPayCenter.entity.ShopInfoEntity;
import com.UnionPayCenter.account.entity.dto.ChargeDTO;
import com.UnionPayCenter.account.entity.dto.PayDTO;
import com.UnionPayCenter.entity.dto.ChargeResponse;

/**
 * 充值service
 */
public interface PayService {


    /**
     * 支付
     *
     * @param payDTO 支付入参
     */
    void pay(PayDTO payDTO);

    /**
     * 充值流程
     * 1. 生产充值订单
     * 2. 调用第三方后，第三方回调再修改充值状态
     *
     * @param chargeBill 充值流水
     * @param chargeDTO  充值入参
     * @param shopInfo   店铺信息
     * @return 充值响应
     */
    ChargeResponse charge(ChargeBill chargeBill, ChargeDTO chargeDTO, ShopInfoEntity shopInfo);

}
